Method, apparatus, and computer program product for network data linking and transmission thereof

ABSTRACT

Methods, apparatuses, and computer program products for improving network database functionalities are discussed therein, such as a computer-implemented method including generating, in a network database, a first dataset associated with a client account, wherein the first dataset indicates a restricted value; receiving, from a client device associated with the client account, a first data linking query to associate the first dataset with an instrument identifier; generating, in the network database, a dataset pointer mapping the first dataset with the instrument identifier, wherein the instrument identifier is associated with a physical instrument; receiving a transmission indication associated with the physical instrument, wherein the transmission indication indicates the instrument identifier and a partial amount associated with the first dataset; updating, in the network database, the first dataset based on the transmission indication; and outputting, to the client device, a transmission notification indicating the updated first dataset.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Non-Provisional PatentApplication No. 16/218,830, filed Dec. 13, 2018, which claims thebenefit of U.S. Provisional Patent Application No. 62/599,483, filedDec. 15, 2017, the entire contents of each of which are incorporatedherein by reference.

TECHNOLOGICAL FIELD

Embodiments of the invention relate, generally, to facilitating datalinking and transmission, and in particular, to update dataset based ontransmission indication associated with a physical instrument thereof.

BACKGROUND

Various systems are configured to perform data linking and transmission.Applicant has identified a number of deficiencies and problemsassociated with existing approaches. Through applied effort, ingenuity,and innovation, many of these identified problems have been solved bydeveloping solutions that are included in the embodiments of the presentdisclosure, many examples of which are described in detail herein.

BRIEF SUMMARY

Embodiments of the invention relate, generally, to improving networkdata linking and transmission. In some embodiments, acomputer-implemented method includes generating, in a network database,a first dataset associated with a client account, wherein the firstdataset indicates a restricted value; receiving, from a client deviceassociated with the client account, a first data linking query toassociate the first dataset with an instrument identifier; generating,in the network database, a dataset pointer mapping the first datasetwith the instrument identifier, wherein the instrument identifier isassociated with a physical instrument; receiving a transmissionindication associated with the physical instrument, wherein thetransmission indication indicates the instrument identifier and apartial amount associated with the first dataset; updating, in thenetwork database, the first dataset based on the transmissionindication; and outputting, to the client device, a transmissionnotification indicating the updated first dataset.

In some embodiments, a computer-implemented method further includesgenerating, in the network database, a second dataset associated withthe client account; receiving, from the client device, a second datalinking query to associate the second dataset with the instrumentidentifier; determining whether the second dataset is linkable, and inresponse to determining that the second dataset is not linkable,outputting, to the client device, an electronic notification indicatingthat the second data linking query cannot be completed.

In some embodiments, a computer-implemented method further includesgenerating a time code associated with the transmission indication forthe first dataset; determining, via a processor, whether a predeterminedamount of time has passed based on the time code; and in response todetermining that the predetermined amount of time has passed,outputting, to the client device, a redemption completion indicationassociated with the first dataset.

In some embodiments, the predetermined amount of time is twenty-fourhours.

In some embodiments, updating, in the network database, the firstdataset based on the transmission indication further includesdetermining whether the partial amount satisfies the restricted value;and in response to determining that the partial amount does not satisfythe restricted value, decreasing the restricted value based on thepartial amount.

In some embodiments, a computer-implemented method further includes inresponse to determining that the partial amount satisfies the restrictedvalue, outputting, to the client device, a redemption completionindication.

In some embodiments, a computer-implemented method further includesoutputting, to the client device, a dataset linking interface, whereinthe dataset linking interface includes a plurality of impressionsassociated with a plurality of datasets; and receiving, via the datasetlinking interface, a selection of an impression corresponds to the firstdataset from the plurality of datasets.

In some embodiments, an apparatus including at least one processor andat least one non-transitory memory including program code is provided.The at least one non-transitory memory and the program code areconfigured to, with the processor, cause the apparatus to at leastgenerate, in a network database, a first dataset associated with aclient account, wherein the first dataset indicates a restricted value;receive, from a client device associated with the client account, afirst data linking query to associate the first dataset with aninstrument identifier; generate, in the network database, a datasetpointer mapping the first dataset with the instrument identifier,wherein the instrument identifier is associated with a physicalinstrument; receive a transmission indication associated with thephysical instrument, wherein the transmission indication indicates theinstrument identifier and a partial amount associated with the firstdataset; update, in the network database, the first dataset based on thetransmission indication; and output, to the client device, atransmission notification indicating the updated first dataset.

In some embodiments, a computer program product including at least onenon-transitory computer-readable storage medium having computer-readableprogram code portions stored therein is provided. The computer-readableprogram code portions includes an executable portion configured togenerate, in a network database, a first dataset associated with aclient account, wherein the first dataset indicates a restricted value;receive, from a client device associated with the client account, a datalinking query to associate the first dataset with an instrumentidentifier; generate, in the network database, a dataset pointer mappingthe first dataset with the instrument identifier, wherein the instrumentidentifier is associated with a physical instrument; receive atransmission indication associated with the physical instrument, whereinthe transmission indication indicates the instrument identifier and apartial amount associated with the first dataset; update, in the networkdatabase, the first dataset based on the transmission indication; andoutput, to the client device, a transmission notification indicating theupdated dataset.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Having thus described embodiments of the invention in general terms,reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 is an exemplary system architecture diagram of an networkdatabase system in accordance with some embodiments of the presentinvention;

FIG. 2 is an exemplary schematic diagram of a server according to someembodiments of the present invention;

FIG. 3 is an exemplary flow chart illustrating interactions betweenvarious components according to some embodiments of the presentinvention;

FIG. 4 is an exemplary flow chart illustrating an exemplary method inaccordance with some embodiments of the present invention;

FIG. 5 is an exemplary flow chart illustrating an exemplary method inaccordance with some embodiments of the present invention;

FIG. 6 is an exemplary flow chart illustrating an exemplary data flow inaccordance with some embodiments of the present invention;

FIG. 7 is an exemplary flow chart illustrating an exemplary data flow inaccordance with some embodiments of the present invention;

FIG. 8 is an exemplary flow chart illustrating an exemplary data flow inaccordance with some embodiments of the present invention;

FIGS. 9-10 illustrate various exemplary workflows in accordance withsome embodiments of the present invention; and

FIGS. 11-28 illustrate various exemplary user interfaces in accordancewith some embodiments of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention now will be described more fullyhereinafter with reference to the accompanying drawings, in which some,but not all embodiments of the inventions are shown. Indeed, embodimentsof the invention may be embodied in many different forms and should notbe construed as limited to the embodiments set forth herein; rather,these embodiments are provided so that this disclosure will satisfyapplicable legal requirements. Like numbers refer to like elementsthroughout.

Overview

Various embodiments of the invention relate generally to improvedmethods, apparatuses, and computer program products for linking apromotion or deal to a credit card.

In particular, the various embodiments provide linking a dataset (suchas a promotion) in a network database to a physical instrument (such asa credit card) having an instrument identifier (such as a uniquecharacter string that identifies the credit card), and updating thelinked dataset based on a transmission indication associated with thephysical instrument. In this regard, embodiments of the presentinvention provide methods, apparatuses, and computer program productsfor receiving a transmission indication identifying a physicalinstrument based on the instrument identifier.

In some embodiments, improved methods, apparatuses, and computer programproducts are provided for enabling a system to allow a consumer (e.g., auser of a promotion and marketing system mobile app) to purchase apromotion, and instead of a conventional delivery method (e.g.,providing a voucher configured for printing or display on the mobiledevice), links/associates the promotion (or an indication therefore)comprising at least a value, with a credit card associated with theconsumer or consumer account. In practice, after providing theindication to purchase the promotion, the consumer may be given anoption to link the newly purchased promotion to a credit card or it mayhappen automatically. The system then links, for example, in a database,an indication of the promotion, an associated value, and an indicationof the credit card. When the consumer then uses the credit card at themerchant, the system may be configured to receive an indication from apayment processing system (Visa®) and transmit information back relatedto promotion (e.g., indicative to the discount, etc.) such that (i) inone embodiment the consumer may only be charged the discounted amount;or (ii) the consumer may be charged the full amount and receive a creditfor the discount associated with the promotion. In any embodiments, theuser may also receive a text message or push notification indicatingthat the promotion has been applied.

Systems structured in accordance with various embodiments of theinvention are configured to provide user with the flexibility ofupdating a dataset in a network database based on interactions of aphysical instrument. For example, a dataset may store informationrelated to a promotion provided by Groupon®. In this example, thedataset may indicate one or more values, such as a promotion value and apurchase value. The physical instrument may be, for example, a creditcard, which may have an instrument identifier, such as a uniquecharacter string that identifies the credit card. The Groupon promotionoffering system may receive a data linking query and associate thepromotion dataset with the instrument identifier. In this example, whenthe credit card is used to complete a transaction, the Groupon promotionoffering system may determine whether a promotion is available to beapplied for the transaction.

Further, systems structured in accordance with various embodiments ofthe invention are compatible with existing network database systems, andprovide support for future network architecture updates/upgrades.Continuing from the Groupon® example above, the Groupon promotionoffering system may specify how a dataset announces that it supportsdata linking, expose an action that allows a user to link or unlink adataset with a physical instrument, communicate information relating tothe dataset to various modules of the network database system, anddefine system behavior related to the dataset state, including specifictraits if a particular module of the network database system does notsupport data linking.

In contrast, other systems that do not incorporate the inventiveembodiments discussed herein (“deficient systems”) may be plagued bylimitations and inefficiencies. For example, some deficient systems donot use any instrument identifier to authenticate the physicalinstrument, which may compromise data integrity. Continuing from theprevious example, such deficient systems may rely on a paper voucher forpromotion redemption. Further, such deficient systems may only allow theuser to redeem the promotion once, regardless of whether the promotionvalue has been completely redeemed. Some other deficient systems do nottrack the interactions of the physical instrument in real-time, whichfurther hinders the system's ability to facilitate data linking andtransmission.

The inventors have identified that system resources can be easilyexhausted, and failure to keep data up-to-date may compromise the dataintegrity of network databases. Details of various embodiments of thepresent invention are described herein.

Definitions

As used herein, the terms “data,” “content,” “information,” and similarterms may be used interchangeably to refer to data capable of beingtransmitted, received, and/or stored in accordance with embodiments ofthe present invention. Thus, use of any such terms should not be takento limit the spirit and scope of embodiments of the present invention.Further, where a computing device is described herein to receive datafrom another computing device, it will be appreciated that the data maybe received directly from another computing device or may be receivedindirectly via one or more intermediary computing devices, such as, forexample, one or more servers, relays, routers, network access points,base stations, hosts, and/or the like. Similarly, where a computingdevice is described herein to send data to another computing device, itwill be appreciated that the data may be sent directly to anothercomputing device or may be sent indirectly via one or more intermediarycomputing devices, such as, for example, one or more servers, relays,routers, network access points, base stations, hosts, and/or the like.

The term “client device” refers to computer hardware and/or softwarethat is configured to access a service made available by a server. Theserver is often (but not always) on another computer system, in whichcase the client device accesses the service by way of a network. Clientdevices may include, without limitation, smart phones, tablet computers,laptop computers, wearable devices, personal computers, enterprisecomputers, and the like.

The term “user input” refers to data that is provided to a client deviceby a user, either directly or indirectly, via one or more input devices.The input device may be a number pad, a keyboard, a cursor controldevice (such as a mouse), a joystick, touch screen display, remotecontrol, or any other device operative to interact with the clientdevice.

The term “network database” refers to a collection of data in a computernetwork that is organized so that its content can easily be accessed,managed, and updated. Network databases contain aggregations ofdatasets, such as product inventories, product catalogs, salestransactions, and customer profiles. Network databases may be classifiedaccording to its dataset type, such as bibliographic, full text,numeric, and images. Network database may also be classified based onits organizational structure, such as relational database, distributeddatabase, cloud database, Not Only SQL (NoSQL) database, object-orienteddatabase, and graph database.

The term “dataset” refers to a collection of related, discrete items ofdata that may be accessed individually, or in combination or managed asa whole entity. Usually, a dataset is organized into some type of datastructure. In a database, for example, a dataset might contain acollection of business data. For example, a dataset may includeinformation related to the category, price, distance, and expirationdate of a promotion. The term “client account” refers to a uniquedataset storing information (e.g., name, password, address) associatedwith a particular client. For example, a client account may storeinformation related to a customer who is interested in purchasing apromotion.

The term “query” refers to a request associated with a database. A querymay be a select query, which requests the retrieval of relevant data inthe database. A query may also be an action query, which asks foradditional operations on the data, such as insertion, updating, ordeleting. A database query may be coded in a query language, whichenables the operations on data interactively from the database, withouthaving to write a complex program.

The term “data linking query” refers to an action query that asks forlinking and connecting relevant information. For example, a “datalinking query” could be a request to link a promotion deal to a creditcard. A “dataset pointer” may be generated in response to a data linkingquery. A “dataset pointer” may take various forms. For example, adataset pointer may be in the form of a table, which may cross referencethe physical addresses of the datasets to be linked.

The term “physical instrument” may include one or more of credit cards,debit cards, key fobs, smart cards, or similar other devices. It mayalso include contactless payment systems, such as smartphones and othermobile devices that use radio-frequency identification (RFID) or nearfield communication (NFC) for making secure payments by way of anembedded chip and antenna. Each physical instrument may have a unique“instrument identifier,” which distinguishes the physical instrumentfrom others. An instrument identifier may be a numeric, alphabetic, oralphanumeric character string that identifies the physical instrument.For example, if the “physical instrument” is a credit card, the“instrument identifier” could be a credit card ID.

The term “promotion” may include, but is not limited to, any type ofoffered, presented or otherwise indicated reward, discount, coupon,credit, deal, incentive, media or the like that is indicative of apromotional value or the like that upon purchase or acceptance resultsin the issuance of an instrument that may be used toward at least aportion of the purchase of particular goods, services and/or experiencesdefined by the promotion. Promotions may have different values indifferent contexts. For example, a promotion may have a first valueassociated with the cost paid by a consumer, known as an “acceptedvalue.” When redeemed, the promotion may be used to purchase a“promotional value” representing the retail price of the goods. In adatabase, the “promotional value” may be stored as a “restricted value”in a dataset. The promotion may also have a “residual value,” reflectingthe remaining value of the promotion after redemption. Althoughconsumers may be primarily focused on the accepted and promotional valueof the promotion, a promotion may also have additional associatedvalues. For example, a “cost value” may represent the cost to themerchant to offer the promotion via the promotion and marketing service,where the promotion and marketing service receives the cost value foreach promotion sold to a consumer. The promotion may also include a“return on investment” value, representing a quantified expected returnon investment to the merchant for each promotion sold.

The term “impressions” may include, but is not limited to, a hyperlink,an electronic communication, a digital text message, an electronicapplication alert, mobile applications or the like, that can beelectronically presented on a client device and indicate one or morepromotions.

Example System Architecture

Methods, apparatuses, and computer program products of the presentinvention may be embodied by any of a variety of devices. For example,methods, apparatuses, and computer program products of an exampleembodiment may be embodied by a networked device, such as a server orother network entity, configured to communicate with one or moredevices, such as one or more client devices. Additionally oralternatively, the computing device may include fixed computing devices,such as a personal computer or a computer workstation. Still further,example embodiments may be embodied by any of a variety of mobiledevices, such as a portable digital assistant (PDA), mobile phone,smartphone, laptop computer, tablet computer, wearable device, or anycombination of the aforementioned devices.

FIG. 1 illustrates an example computing system within which embodimentsof the present invention may operate. Users may access the networkdatabase platform 119 via a communication network 107 (e.g., theInternet, Wi-Fi, LAN, WAN, or the like) using client devices 101A-101N.The network database platform 119 may also receive electroniccommunications from the transmission server 105 and/or a terminal device103.

The network database platform 119 may comprise a server 115 incommunication with one or more network databases 117A-117N. The server115 may comprise a link query analyzer 109, a database controller 111,and a transmission decipher 113.

The server 115 may be embodied as a computer or computers. The server115 may provide for receiving of electronic data from various sources,including but not limited to the client devices 101A-101N andtransmission server 105. For example, the server 115 may be operable toreceive and process data linking queries provided by the client devices101A-101N, and transmission indications from the transmission server105. The server 115 may provide means for the generation and providingof data linking.

The client devices 101A-101N may be any computing device as definedabove. Electronic data received by the server 115 from the clientdevices 101A-101N may be provided in various forms and via variousmethods.

In some preferred and non-limiting embodiments, one or more of theclient devices 101A-101N is a mobile device, such as a smart phone ortablet. The one or more client device may execute an “app” to interactwith the server 115. Such apps are typically designed to execute onmobile devices, such as tablets or smartphones. For example, an app maybe provided that executes on mobile device operating systems such asApple Inc.'s iOS®, Google Inc.'s Android®, or Microsoft Inc.'s Windows10 Mobile®. These platforms typically provide frameworks that allow appsto communicate with one another and with particular hardware andsoftware components of mobile devices. For example, the mobile operatingsystems named above each provide frameworks for interacting withlocation services circuitry, wired and wireless network interfaces, usercontacts, and other applications. Communication with hardware andsoftware modules executing outside of the app is typically provided viaApplication Programming Interfaces (APIs) provided by the mobile deviceoperating system.

In some embodiments, the client devices 101A-101N may interact with theserver 115 via a web browser. The client devices 101A-101N may alsoinclude various hardware or firmware designed to interact with theserver 115.

The network databases 117A-117N may be embodied as a data storage devicesuch as a network attached storage (NAS) device or devices, or as aseparate database server or servers. The network databases 117A-117N mayinclude datasets related to promotions and instrument identifiers. Forexample, the network databases 117A-117N may include, withoutlimitation, product information, promotional value, purchase informationand/or the like.

An example of a data flow for exchanging electronic information amongone or more client devices 101A-101N and the network database platform119 is described below.

In the depicted embodiment, the server 115 may utilize the databasecontroller 111 to generate a dataset associated with the client account.The dataset may further include a restricted value. The server 115 maytransmit an impression of the dataset to one or more client devices101A-101N via the communication network 107.

The one or more client devices 101A-101N are configured to generate adata linking query associated with the dataset. The data linking querydescribes one or more commands from the one or more client devices101A-101N to the network database platform 119 to link the dataset withan instrument identifier associated with a physical instrument.

The data linking query may be transmitted to the network databaseplatform 119 via the communication network 107. The network databaseplatform 119 may provide the data linking query to the server 115. Theserver 115 may utilize the link query analyzer 109 to determine therelevant dataset and instrument identifier based on the data linkingquery, and utilize the database controller 111 to identify the relevantdataset and instrument identifier in network databases 117A-117N. Theserver 115 may also use the database controller 111 to generate adataset pointer that connects the dataset with the instrumentidentifier.

When the physical instrument having the instrument identifier contactsthe terminal device 103 to complete a transmission or transaction, theterminal device 103 may transmit an electronic signal to thetransmission server 105, which may in turn deliver a transmissionindication to the network database platform 119. A terminal device 103may be a device, a system of devices, or a module operable to process orcommunicate in relation to a payment, such as a point-of-sale (“POS”)machine, a mobile payment processing system, a cellular phone, a laptop,any intermediary device that could communicate with a POS machine, orthe like. In some embodiments, the physical instrument is a credit card,and the terminal device is a POS machine. When the credit card is swipedat the POS machine, the POS machine transmits a signal to thetransmission server 105.

In some embodiments, the terminal device 103 may be a part of acontactless payment system, which may use radio-frequency identification(RFID) or near field communication (NFC) for making secure payments byway of an embedded chip and antenna, for example, which enablesconsumers to wave their card, fob, or handheld device over a reader atthe point of sale terminal.

Upon receiving the transmission indication, the server 115 may utilizethe transmission decipher 113 to identify a partial amount associatedwith the transmission indication. The server 115 may further utilize thedatabase controller 111 to update the dataset based on the transmissionindication, and output a transmission notification indicating theupdated dataset to one or more client devices 101A-101N.

In some embodiments, the server 115 may utilize the database controller111 to determine whether the identified dataset is linkable. In responseto determining that such dataset is not linkable, the server 115 mayoutput an electronic notification to one or more client devices101A-101N via the communication network 107, indicating that the datalinking query cannot be completed.

Example Apparatus for Implementing Embodiments of the Present Invention

The server 115 may be embodied by one or more computing systems, such asapparatus 200 shown in FIG. 2. The apparatus 200 may include processor202, memory 204, input/output circuitry 206, communications circuitry208, link query circuitry 210, transmission circuitry 212, and databasecircuitry 214. The apparatus 200 may be configured to execute theoperations described above with respect to FIG. 1 and below with respectto FIGS. 3-5. Although these components 202-214 are described withrespect to functional limitations, it should be understood that theparticular implementations necessarily include the use of particularhardware. It should also be understood that certain of these components202-214 may include similar or common hardware. For example, two sets ofcircuitry may both leverage use of the same processor, networkinterface, storage medium, or the like to perform their associatedfunctions, such that duplicate hardware is not required for each set ofcircuitry.

The term “circuitry” should be understood broadly to include hardwareand, in some embodiments, software for configuring the hardware. Withrespect to components of the apparatus, the term “circuitry” as usedherein should therefore be understood to include particular hardwareconfigured to perform the functions associated with the particularcircuitry as described herein. For example, in some embodiments,“circuitry” may include processing circuitry, storage media, networkinterfaces, input/output devices, and the like. In some embodiments,other elements of the apparatus 200 may provide or supplement thefunctionality of particular circuitry. For example, the processor 202may provide processing functionality, the memory 204 may provide storagefunctionality, the communications circuitry 208 may provide networkinterface functionality, and the like.

In some embodiments, the processor 202 (and/or co-processor or any otherprocessing circuitry assisting or otherwise associated with theprocessor) may be in communication with the memory 204 via a bus forpassing information among components of the apparatus. The memory 204 isnon-transitory and may include, for example, one or more volatile and/ornon-volatile memories. In other words, for example, the memory 204 maybe an electronic storage device (e.g., a computer readable storagemedium). The memory 204 may be configured to store information, data,content, applications, instructions, or the like, for enabling theapparatus to carry out various functions in accordance with exampleembodiments of the present invention.

The processor 202 may be embodied in a number of different ways and may,for example, include one or more processing devices configured toperform independently. In some preferred and non-limiting embodiments,the processor 202 may include one or more processors configured intandem via a bus to enable independent execution of instructions,pipelining, and/or multithreading. The use of the term “processingcircuitry” may be understood to include a single core processor, amulti-core processor, multiple processors internal to the apparatus,and/or remote or “cloud” processors.

In some preferred and non-limiting embodiments, the processor 202 may beconfigured to execute instructions stored in the memory 204 or otherwiseaccessible to the processor 202. In some preferred and non-limitingembodiments, the processor 202 may be configured to execute hard-codedfunctionalities. As such, whether configured by hardware or softwaremethods, or by a combination thereof, the processor 202 may represent anentity (e.g., physically embodied in circuitry) capable of performingoperations according to an embodiment of the present invention whileconfigured accordingly. Alternatively, as another example, when theprocessor 202 is embodied as an executor of software instructions, theinstructions may specifically configure the processor to perform thealgorithms and/or operations described herein when the instructions areexecuted.

In some embodiments, the apparatus 200 may include input/outputcircuitry 206 that may, in turn, be in communication with processor 202to provide output to the user and, in some embodiments, to receive anindication of a user input. The input/output circuitry 206 may comprisea user interface and may include a display, and may comprise a web userinterface, a mobile application, a client device, a kiosk, or the like.In some embodiments, the input/output circuitry 206 may also include akeyboard, a mouse, a joystick, a touch screen, touch areas, soft keys, amicrophone, a speaker, or other input/output mechanisms. The processorand/or user interface circuitry comprising the processor may beconfigured to control one or more functions of one or more userinterface elements through computer program instructions (e.g., softwareand/or firmware) stored on a memory accessible to the processor (e.g.,memory 204, and/or the like).

The communications circuitry 208 may be any means such as a device orcircuitry embodied in either hardware or a combination of hardware andsoftware that is configured to receive and/or transmit data from/to anetwork and/or any other device, circuitry, or module in communicationwith the apparatus 200. In this regard, the communications circuitry 208may include, for example, a network interface for enablingcommunications with a wired or wireless communication network. Forexample, the communications circuitry 208 may include one or morenetwork interface cards, antennae, buses, switches, routers, modems, andsupporting hardware and/or software, or any other device suitable forenabling communications via a network. Additionally or alternatively,the communications circuitry 208 may include the circuitry forinteracting with the antenna/antennae to cause transmission of signalsvia the antenna/antennae or to handle receipt of signals received viathe antenna/antennae.

Link query circuitry 210 includes hardware configured to process datalinking queries. The link query circuitry 210 may utilize processingcircuitry, such as the processor 202, to perform these actions. The linkquery circuitry 210 may receive data from the transmission circuitry 212and the database circuitry 214, and send data to the communicationscircuitry 208.

In some embodiments, the link query circuitry 210 may include a separateprocessor, specially configured Field Programmable Gate Array (FPGA), orApplication Specific Integrated Circuit (ASIC). In some implementations,the transmission circuitry 212 and the database circuitry 214, describedbelow, may be sub-circuitries belonging to link query circuitry 210. Thelink query circuitry 210 may be implemented using hardware components ofthe apparatus configured by either hardware or software for implementingthe functions described herein.

The transmission circuitry 212 includes hardware configured to receivetransmission indications associated with physical instruments. Thetransmission circuitry 212 may utilize processing circuitry, such as theprocessor 202, to perform these actions. However, it should also beappreciated that, in some embodiments, the transmission circuitry 212may include a separate processor, specially configured FieldProgrammable Gate Array (FPGA), or Application Specific IntegratedCircuit (ASIC) for performing the functions described herein. Thetransmission circuitry 212 may be implemented using hardware componentsof the apparatus configured by either hardware or software forimplementing these planned functions.

The database circuitry 214 includes hardware configured to manage one ormore network databases. The database circuitry 214 may utilizeprocessing circuitry, such as the processor 202, to perform theseactions. However, it should also be appreciated that, in someembodiments, the database circuitry 214 may include a separateprocessor, specially configured Field Programmable Gate Array (FPGA), orApplication Specific Integrated Circuit (ASIC) for performing thefunctions described herein. The database circuitry 214 may beimplemented using hardware components of the apparatus configured byeither hardware or software for implementing these planned functions.

As will be appreciated, any such computer program instructions and/orother type of code may be loaded onto a computer, processor or otherprogrammable apparatus's circuitry to produce a machine, such that thecomputer, processor or other programmable circuitry that execute thecode on the machine creates the means for implementing variousfunctions, including those described herein.

It is also noted that all or some of the information discussed hereincan be based on data that is received, generated and/or maintained byone or more components of apparatus 200. In some embodiments, one ormore external systems (such as a remote cloud computing and/or datastorage system) may also be leveraged to provide at least some of thefunctionality discussed herein.

As described above and as will be appreciated based on this disclosure,embodiments of the present invention may be configured as methods,mobile devices, backend network devices, and the like. Accordingly,embodiments may comprise various means including entirely of hardware orany combination of software and hardware. Furthermore, embodiments maytake the form of a computer program product on at least onenon-transitory computer-readable storage medium having computer-readableprogram instructions (e.g., computer software) embodied in the storagemedium. Any suitable computer-readable storage medium may be utilizedincluding non-transitory hard disks, CD-ROMs, flash memory, opticalstorage devices, or magnetic storage devices.

Example Operations for Implementing Embodiments of the Present Invention

In some embodiments, the system may be configured to facilitate datalinking and transmission, some exemplary processes of which are shown inFIGS. 3-5.

FIGS. 3-5 illustrate example methods that may be executed by one or moreapparatuses, for example by processor 202, memory 204, input/outputcircuitry 206, communications circuitry 208, link query circuitry 210,transmission circuitry 212, and database circuitry 214 of FIG. 2, forproviding data linking and transmission thereof, in accordance with someembodiments discussed herein.

1. Providing Data Linking to a Physical Instrument

FIG. 3 illustrates a flow diagram depicting an example of a process 300for facilitating data linking and transmission.

The process 300 starts at block 301. At block 303, an apparatus, such asapparatus 200, may be configured to receive a dataset generation requestfrom a client device, such as one of the client devices 101A-101N. Uponreceiving the dataset generation request, the apparatus 200 may beconfigured to generate a dataset associated with a client account. Thedataset may indicate a restricted value.

In some embodiments, the dataset generation request indicates thecompletion of a transaction. For example, when a customer, John,purchases a promotion via a mobile application on a mobile phone, theapparatus (such as a server) may receive a dataset generation requestfrom the mobile phone, which requests the purchased promotion to beadded to John's account in the database. The purchased promotion couldbe, for example, a restaurant promotion of 20 dollars for 40 dollars'worth of cuisine at a participating restaurant. In this example, thedataset generated by the server may indicate 40 as the restricted value.

At block 305, the apparatus, such as apparatus 200, may be configured toreceive a data linking query from a client device, such as one of theclient devices 101A-101N. The data linking query may requestestablishing connections between the dataset and an instrumentidentifier. In response to the data linking query, the apparatus 200 mayupdate the dataset to map the dataset to the instrument identifier.

In some embodiments, the data linking query links a credit card to apurchased promotion. Continuing from the previous example, the customer,John, may be presented an option to link the purchased promotion to acredit card in the mobile application interface. When John chooses tolink the purchased promotion to the credit card, the server may create acredit card ID in the database that identifies the credit card, andupdate John's account to indicate that the purchased promotion is nowlinked to John's credit card.

At block 307, the apparatus, such as apparatus 200, may receive atransmission indication from another server, such as transmission server105. The transmission indication may indicate a transmission between thephysical instrument and a terminal device, and may include a partialamount associated with the transmission.

In some embodiments, the transmission indication indicates a transactionassociated with the promotion. Continuing from the previous example, theterminal device may be a point-of-sale machine, and the transmissionindication may indicate a transaction by the linked credit card. Thetransmission indication may indicate an amount that is redeemed usingthe credit card. Upon receiving the transmission indication, the servermay update John's account based on the amount that has been redeemed.For instance, when John uses the linked credit card to make a purchaseof 25 dollars' worth of promotion at the participating restaurant via apoint-of-sale device, the server may receive an indication associatedwith this transaction. In response, the server may update John'saccount, reflecting that 25 dollars' worth of the 40 dollars have beenredeemed, and may transmit a request to the bank associated with thelinked credit card for a reimbursement.

At block 309, the apparatus, such as apparatus 200, may output aredemption indication to one of the client devices 101A-101N. Suchredemption indication may include, for example, the restricted value,the partial value, and any residual value that is left after deductingthe partial value from the restricted value.

Continuing from the previous example, John may receive a pushnotification from the mobile application on the mobile phone indicating25 dollars' worth of the promotional value that has been redeemed in thetransaction. The push notification may also indicate the residuepromotional value, which is 15 dollars in this case.

The process 300 ends at block 311.

2. Determining Whether Promotion and Card are Linkable

FIG. 4 illustrates a flow diagram depicting an example of a process 400for determining whether a dataset can be linked to a physicalinstrument.

The process 400 starts at block 402. At block 404, an apparatus, such asapparatus 200, may determine whether a dataset is linkable to a physicalinstrument. For example, the apparatus, such as a server, may determinewhether a restaurant promotion, offered by a merchant, can be linked toa credit card.

In response to determining that the dataset is not linkable, theapparatus, such as apparatus 200, may generate an electronicnotification at block 406, and transmit the electronic notification toone of the client devices 101A-101N. The electronic notification mayindicate that the dataset is not linkable. Continuing from the previousexample, when the server determines that the restaurant promotion is notlinkable to a credit card, the server may provide an electronicindication to the client device that a card-link option is notavailable.

In response to determining that the dataset is linkable, the apparatus,such as apparatus 200, may further determine whether there is anavailable instrument at block 410. If there is no available instrument,the apparatus, such as apparatus 200, may request a new instrumentidentifier at block 412.

Continuing from the previous example, when the server determines thatthe restaurant promotion is linkable, the server may proceed withdetermining whether a customer has a credit card in the system that therestaurant promotion can be linked to. When the server determines thatthe system does not have any credit card associated with the customer,the server may then present an option in the mobile application thatallows the customer to add a credit card.

If the apparatus, such as apparatus 200, determines that an instrumentidentifier is available at block 410, the apparatus, such as apparatus200, may further generate a dataset pointer at block 414 based on thedata link query. As discussed above, the dataset pointer maps theidentified dataset to an instrument identifier.

Continuing from the previous example, when the server determines that(1) the restaurant promotion is linkable, (2) the customer has a creditcard available to be linked to the restaurant promotion, and (3) thecustomer requests the credit card to be linked to the restaurantpromotion, the server may map the promotion to rules associated withcard-linked deals so that the credit card can be used to redeem thepromotion.

The process 400 ends on block 416.

3. Determining Whether a Linked Promotion Has Expired

FIG. 5 illustrates a flow diagram depicting an example of a process 500for determining whether a linked dataset is still available.

The process 500 starts at block 501. At block 503, an apparatus, such asapparatus 200, may receive a transmission indication, indicating thatthere is a transmission or transaction associated with a physicalinstrument having the instrument identifier on a terminal device. Theinstrument identifier is linked to a dataset in the server.

For example, a user John may have a credit card that is linked to apurchased promotion of 20 dollars for 40 dollars' worth of cuisine at aparticipating restaurant. The transmission indication may indicate thatJohn has made a purchase using the linked credit card at a point-of-salemachine at the participating restaurant.

In response to receiving a transmission indication at block 503, theapparatus, such as apparatus 200, updates the linked dataset based onthe transmission indication at block 505.

Continuing from the previous example, the transmission indication mayindicate that John made a 25 dollars' worth of purchase at therestaurant. In response, the server may update John's account,indicating that 25 dollars' worth of promotional value has beenredeemed. The server may further generate a request of reimbursement tothe bank associated with the linked credit card.

At block 507, the apparatus, such as apparatus 200, may then determinewhether the value has been fully redeemed. The value is fully redeemedwhen the transaction value as indicated in the transmission indicationequals to or more than the promotional value of the promotion.Continuing from the previous example, because 25 is less than 40, theserver may flag the promotion as not being fully redeemed.

If the apparatus determines that the value is not fully redeemed atblock 507, the apparatus may generate a time code associated with thetransmission indication at block 511. The time code indicates the systemtime at which the transmission indication was received at block 503.Continuing from the previous example, the time code may indicate thetime at which John made the purchase using the linked credit card at theparticipating restaurant.

At block 513, the apparatus, such as apparatus 200, may furtherdetermine whether a new transmission indication has been received.Continuing from the previous example, the server may determine whether anew purchase associated with the promotion has been made using thelinked credit card at the participating restaurant.

If the apparatus, such as apparatus 200, does not receive any newtransmission indication, then the apparatus, such as apparatus 200,waits at block 515 until a pre-determined amount of time has passedsince the system time indicated by the time code generated at block 511before ending the process 500 at block 517.

Continuing from the previous example, if twenty-four (24) hours havepassed and John made no additional purchase using the linked credit cardat the participating restaurant, then the server may flag the promotionas expired, or convert back to non-card-linked promotion (i.e.disconnect the link between the instrument identifier and the dataset),or provide John an option to exchange the card-linked promotion formonetary value.

Referring back to block 507, if the apparatus, such as apparatus 200,determines that the value has been fully redeemed, the apparatus maygenerate a redemption completion indication at block 509, and transmitthe redemption completion indication to one or more client devices, suchas client devices 101A-101N.

Continuing from the previous example, if the 40 dollars' worth ofpromotional value has been fully redeemed, the server may transmit apush notification to the John's mobile device, indicating that thepromotion has been fully redeemed.

Referring back to block 513, if the apparatus, such as apparatus 200,determines that there has been new transaction indication at block 513,the apparatus, such as apparatus 200, may proceed with updating datasetat block 505 and determining whether the value has been fully redeemedat block 507. Continuing from the previous example, if an additionalpurchase has been made at the participating restaurant using the linkedcredit card, the server may proceed with updating John's account, anddetermining whether the promotion has been fully redeemed.

The process 500 ends at block 517.

Example Data Flows of the Present Invention

FIGS. 6-8 are exemplary data flow diagrams based on various embodimentsof the present invention.

1. Linking Dataset with Physical Instrument

FIG. 6 illustrates an exemplary data flow 600 for linking a dataset withone or more physical instruments.

At step 602, a user device, such as one of the client devices 101A-101Ndescribed above with reference to FIG. 1, may request a status check fora dataset in the inventory module. The inventory module is configured tostore all available datasets in the system. The inventory module may beembedded through hardware, software, or a combination of hardware andsoftware in the apparatus, such as apparatus 200 described above inconnection with FIGS. 1-2.

For example, a user John may click on or otherwise select a promotionvia a mobile application on a mobile phone. In response to theselection, the mobile application may request a status check on theselected promotion from the inventory module of the promotion system.

At step 604, the inventory module may return a status of the dataset tothe user device. The status can be, for example, whether the dataset hasbeen linked. Continuing from the example above, the inventory module mayindicate that the selected promotion has not been linked.

At step 606, the user device may request transmission of a dataset fromthe inventory module. Continuing from the example above, the inventorymodule may receive a request to purchase the selected promotion from amobile application on a mobile phone associated with John.

At step 608, the inventory module may transfer the requested dataset touser device. Continuing from the example above, the inventory module maytransfer data associated with the requested promotion to John's mobilephone, indicating that the promotion has been purchased by John and isno longer available in the inventory module.

At step 610, the inventory module may determine whether the dataset islinkable to one or more physical instruments. If the determination isno, the inventory module may transmit an unlinkable indication to theuser device at step 612. Continuing from the example above, if theinventory module determines that the purchased promotion is notlinkable, then John's mobile phone may receive a notification, via themobile application, indicating that the purchased promotion cannot belinked to a credit card.

If, at step 610, the inventory module determines that the promotion islinkable, the inventory module may then transmit a request to thelinking module to obtain records, such as identifications, associatedwith one or more physical instruments to be linked with the dataset atstep 614. The linking module is configured to perform dataset linking.The linking module may be embedded through hardware, software, or acombination of hardware and software in the apparatus, such as apparatus200 described above in connection with FIGS. 1-2.

Continuing from the previous example, once the inventory moduledetermines that the purchased promotion is linkable, the inventorymodule may request credit card information (for example, credit cardnumber, expiration date) associated with John from the linking module.

After the inventory module receives the records (such as identificationsassociated with one or more physical instruments), the inventory modulemay link the records to the dataset at block 616. Continuing from theexample above, the inventory module may link identification of John'scredit card to the purchased promotion.

Further, at step 618, the linking module may transmit to the user devicean indication that a data linking has been completed. Continuing fromthe example above, once the identification of John's credit card islinked with the purchase promotion, the linking module may generate andtransmit a linked indication to the mobile application on John's mobilephone.

2. Unlinking Dataset from Physical Instrument

FIG. 7 illustrates an exemplary data flow 700 for unlinking a datasetfrom a physical instrument.

At step 701, the user device may initiate a status check of a dataset,and the inventory module may return the status at step 703. The statusmay indicate, for example, whether the dataset has been linked. Forexample, John may click on or otherwise select a promotion via a mobileapplication on a mobile phone. In response to the selection, the mobileapplication may request a status check on the selected promotion fromthe inventory module of the promotion system. In response to therequest, the inventory module may indicate that the selected promotionhas been linked.

At step 705, the user device may transmit a request to unlink thedataset to the inventory module. Continuing from the previous example,John may request that the purchased promotion to be unlinked from thecredit card via the mobile application on the mobile phone.

At step 707, upon receiving the unlinking request, the inventory modulemay identify the dataset based on the unlinking request, and may furthertransfer information related to the dataset to the linking module.Continuing from the previous example, the inventory module identifiedJohn's purchased promotion based on the unlinking request, and maytransmit information related to the promotion to the linking module.

At step 709, the linking module may transmit unlinking update to theinventory module, and the inventory module may update the dataset toremove the linkage and complete the unlinking from a physical instrumentat step 711. Continuing from the previous example, the linking modulemay transmit updates to the inventory module that the linking betweenJohn's credit card and the purchased promotion has been disconnected,and the inventory module may update the status of the purchasedpromotion, indicating that the purchased promotion is no longer linkedto John's credit card.

At step 713, the inventory module may transmit a completion indicationto the user device upon successfully unlinking the dataset. Continuingfrom the previous example, the inventory module may transmit anindication to the mobile application installed on John's mobile device,indicating that the unlinking has been completed.

3. Updating Linked Dataset

FIG. 8 illustrates an exemplary data flow 800 for updating the linkeddataset.

At step 802, the card processing unit may request to check the status ofa dataset, and the linking module may return the status to the cardprocessing unit at step 804. The status may indicate whether one or morephysical instrument is linked to a dataset. The card processing unit canbe, for example, the terminal device in association with FIG. 1 above.

For example, when John uses his linked credit card at a terminal to makea purchase associated with the promotion, the card processing unit maytransmit a status check request to the linking module, and the linkingmodule may indicate that the credit card is associated with a linkedpromotion.

At step 806, the card processing unit may then transmit a transmissionindication to the linking module, which indicate a transmissionassociated with a linked physical instrument. The linking module maythen transmit a request to update the dataset to the inventory module atstep 808, and the inventory module may update the dataset based on theupdate request ate step 810. For example, the request to update mayindicate a value associated with the transmission indication from thecard processing unit.

Continuing from the previous example, if John uses his credit card tomake a 25 dollars' worth of purchase at a promotion restaurant, andJohn's credit card is linked to a 40 dollars' worth of promotion, thepromotion in the inventory module may be updated to reflect that 25dollars have been redeemed.

At step 812, the inventory module may transmit a return notification tothe card processing unit upon completion of the update.

Continuing from the previous example, the inventory module may transmitan indication to the mobile application installed on John's mobiledevice, indicating that the 25 dollars' worth of promotion has beenredeemed.

Example Work Flows of the Present Invention

FIGS. 9-10 depict various exemplary workflows that implement the presentinvention in accordance with various embodiments of the presentinvention.

Referring now to FIG. 9, an exemplary workflow 900 for purchasing,linking, and redeeming a card-linked deal is shown.

Workflow 900 starts at block 901. At block 903, a user purchases a dealor promotion. For example, a user Amrut may browse deals on Grouponwebpage or mobile app when he spots a deal for “Mike's Pizza: $20 for$40.” Amrut may be interested in purchasing the deal, and may click orotherwise select on the deal card to view the deal page. He may click orotherwise select the “Buy” button, and is taken to the checkout page. Heplaces the order and pays $20 for a $40 deal on the Groupon webpage ormobile app. The Groupon webpage or mobile app is then redirected to the“thank you page.”

After a user purchases a deal, the workflow may present the user anoption to link a card to the deal at block 905. Continuing from theprevious example, if the deal is not already linked to Amrut's creditcard(s), then a modal or embedded screen is presented to him when heviews the “thank you page.” In some embodiments, the modal is onlydisplayed one time per order. In some embodiments, the modal isdisplayed until the user enrolls in the linking program.

After a user links a deal to the credit card, the user may redeem thedeal by swiping the linked credit card at block 907. Continuing from theprevious example, Amrut may redeem the purchased deal by making apurchase at Mike's Pizza. When Amrut swipes the linked credit card tomake a $15 purchase, he may receive a text message or push notificationfrom his bank or the credit card company notifying him that his card wasjust swiped at Mike's Pizza for $15. He also receives a text message orpush notification from Groupon indicating that $15 has been creditedback to his credit card, and that $15 of the $40 deal has been depleted.

The process may continue until the full value of the deal has beenredeemed, and the deal is marked as redeemed at block 909. Continuingfrom the previous example, Amrut may make another $25 purchase at Mike'sPizza, and receive a text message or push notification from Grouponindicating that he has redeemed the deal. In some embodiments, asdescribes above with reference to FIG. 5, Groupon may automatically markthe deal as fully redeemed 24 hours after the first swipe of linkedcredit card at Mike's Pizza.

The workflow ends at block 911.

Referring now to FIG. 10, an exemplary workflow 1000 for linking acredit card to a deal is shown.

Workflow 1000 begins at block 1002. At block 1004, a system inaccordance with some embodiments of the present invention may determinewhether a deal is linkable. If the system determines that the deal isnot linkable, the workflow 1000 proceeds to block 1022, and the systemmay display the voucher option for deal redemption.

If the system determines that the deal is linkable, then the workflowproceeds to block 1006, where the system may display the deal through agraphic user interface, as further described below. A user may choose topurchase the deal, and the system may display a checkout page where theuser can make a purchase. Once the user places an order, the system mayprocess the order and complete the purchase at block 1008.

At block 1010, the system may determine whether a deal unit has beenassigned. A deal unit represents an available deal for a particularpromotion in the inventory module. If the deal unit has not beenassigned to the order, then the system may display a thank you pageindicating that the deal is being processed at block 1018. After thedeal unit has been assigned, the user may visit Groupon webpage ormobile app to see redemption details at block 1020. When a user clicksto view the deal and chooses link a credit card to the deal, the systemperforms card linking at block 1016.

Referring back to block 1010, if the system determines that the dealunit has been assigned, the system then proceeds to determine whetherthe user has credit card information on file at block 1012. If there isno credit card information on file, then the system proceeds to end theworkflow at block 1022. If there is credit card on file, the system thendisplays a thank you page, where the user is presented with an option tolink a credit card to the deal. Once the user confirms the card linking,the system proceeds to block 1016 to perform card linking.

In some embodiments of the present invention, only unviewed deal units(i.e. deals that haven't been converted into vouchers) are linked to thecard. In some embodiments, all existing vouchers are suppressed, and alldeal units are linked to the card. In some embodiments, the systemtransmits a text message, email message, or other notification to theuser indicating that the card has been linked. In some embodiments, thesystem may provide redemption instructions for redeeming using linkedcredit card, and may override redemption instructions for redeemingusing voucher.

The workflow 1000 ends at block 1022.

Example User Interfaces of the Present Invention

FIGS. 11-28 illustrate various example user interfaces in accordancewith various embodiments of the invention.

-   -   1. Linking a Promotion to a Credit Card

As illustrated in FIG. 11, an example user interface may prompt the userabout linking a dataset to a physical instrument. For example, thedataset indicates a promotion or deal offer, and the physical instrumentis a credit card. A user interface of the mobile application may send anotification recommending a user to use his visa card ending in 2342 toredeem a purchased offer. The user may tap or otherwise select thebutton 1101 to confirm the linking, or tap or otherwise select thebutton 1103 for skipping the linking.

Once the user selects the button 1101 of FIG. 11, the user interface mayillustrate how the linking works as shown in FIG. 12. Continuing fromthe previous example, the user interface may illustrate to the user thathe can link the deal to his Visa credit card on file and use his linkedcard while visit the merchant to redeem the offer. The user interfacemay further illustrate that the user would receive a credit back to hisVisa credit card account automatically once he redeems the purchasedpromotion. If the user still wishes to continue with the linking, theuser may tap or otherwise select the button 1202.

Once the user selects the button 1202 of FIG. 12, the user interface mayfurther allow a user to confirm or change his credit card numbers priorto linking the promotion and the credit card, as illustrated in FIG. 13.Continuing from the previous example, the user may change his creditcard number to link the deal, and may tap or otherwise select the “IAgree, Link Deal” button 1301 to confirm the linking. Once the linkingis confirmed, the mobile device may send a data linking query asdescribed above.

FIG. 14 illustrates an example notification indicating that the datasetlinking is successful. Continuing from the previous example, after theuser taps or otherwise selects the “I Agree, Link Deal” button 131 toconfirm the linking, the user interface may generate a notification 1402indicating “You're All Set!” and explaining that the linked Visa creditcard will be automatically credited when the deal is redeemed using thelinked card.

2. Adding Credit Card for Linking

When a user attempts to link a deal to a credit card, but does not havea credit card on file, the user interface may prompt the user that thereis no card on file, as shown in FIG. 15. Continuing from the previousexample, after the user selects button 1101 of FIG. 11 to confirm thelinking, the user interface may warn the user that he does not have acard on file, and provides button 1501 to allow the user to initiate theprocess of adding a credit card.

As shown in FIG. 16, the user may input his or her credit card numbersto add a card to the file. Continuing from the previous example, theuser interface may allow the user to scan or take a picture of hiscredit card, or manually type the cardholder's name, credit cardnumbers, expiration date, security code, and zip code. Once the usercompletes inputting his credit card information, he may tap or otherwiseselect the “Save” button 1602 to save the credit card information.

As shown in FIG. 17, once the user added a credit card through the userinterface as shown in FIG. 16, the user may further link the newly inputcredit card information to a deal that the user has purchased.Continuing from the previous example, the user interface may request theuser to confirm his authorization for card linking by tapping orotherwise selecting the “I Agree, Link Deal” 1701 to finish the linkingprocess.

3. Redeeming a Promotion Using a Linked Credit Card

When a user wants to redeem a deal, as shown in FIG. 18, the userinterface may display details of a card linked deal. Continuing from theprevious example, a user may want to redeem a deal of “Dinner for Two orMore” at Park Balluchi restaurant. The user interface may providedetails regarding the deal, such as expiration date and location. It mayalso indicate that the deal has been linked to a Visa credit card endingin 4532. If the user would like more details on how to redeem this deal,he may tap or otherwise select the “How to redeem this deal” button1802.

Once the user taps or selects the “How to redeem this deal” button 1802on the user interface as shown in FIG. 18, the user interface mayprovide more details on how to redeem the card linked deal as shown inFIG. 19. Continuing from the previous example, the user interface mayshow the user that he can redeem the deal by swiping his Visa cardending in 4532. It may also provide an option for the user to watch atutorial video by selecting hyperlink 1901, or add another card to belinked with the deal by selecting hyperlink 1903. It may further providean option through hyperlink 1905 so that the user may use an electronicvoucher instead of the linked credit card to redeem the deal.

When the user swiped a linked credit card, the user interface maygenerate a notification, as shown in FIG. 20, indicating the transactiontime and location, allowing the user to inspect transaction details.Continuing from the previous example, once the user swipes the Visacredit card ending in 4532 (which is linked to the deal), the userinterface may indicate that a transaction has been made, and allow theuser to inspect transaction details by tapping or otherwise selectingthe “See Transaction Details” button 2002.

FIG. 21 shows an example transaction details page, where the deal ispartially redeemed. Continuing from the previous example, when the userswipes the linked credit card at the Park Balluchi restaurant and redeem$25 worth of the $40 deal ($25 will be issued as credit to the user'slinked credit card), the transaction details page shows that the userhas $15 worth of the deal to spend on further purchases.

FIG. 22 shows an example transaction details page, where the deal hasbeen fully redeemed. Continuing from the previous example, when the usermakes another purchase at the Park Balluchi restaurant and redeems theremaining $15, the transaction details page may indicate that the dealhas been fully redeemed.

4. Redeeming a Promotion Using Voucher

As described above in connection with FIG. 19, the user interface maydisplay an option to use an electronic voucher to redeem the dealinstead of through card linking. After the user selects this option, anexample user interface is shown in FIG. 23. As an example, the user mayprefer to use an electronic voucher instead of linked credit card toredeem the Park Bulluchi deal, and may tap or otherwise select the “ViewVoucher” button 2301 on the user interface to view the electronicvoucher.

When the user selects “view voucher,” the user interface may display awarning message 2402, as shown in FIG. 24, explaining that the ordercannot be modified once the electronic voucher is viewed. It may providethe user an option to view the electronic voucher now, and anotheroption to save it for later.

A user interface displaying an example electronic voucher is shown inFIG. 25. For example, the electronic voucher may display the name of thedeal, the starting date and the expiration date of the electronicvoucher, the bar code of the voucher, the electronic voucher number andthe Groupon voucher code. To redeem the voucher, the merchant may scanthe voucher bar code or mark the electronic voucher as redeemed bytapping the button 2501.

5. Choosing Redemption Options

In some embodiments of the present invention, the user interface mayallow the user to choose redemption options, as shown in FIG. 26. Forexample, the user interface may present button 2602 that allows a userto view difference redemption options for the deal.

The redemption options can be “use credit card” or “use voucher,” asshown in FIG. 27. The user may select the button 2701 to use a visa cardto redeem this promotion, or select the button 2703 to use a voucher toredeem this promotion.

Once the user selects a desired option, the user interface may provide asuccess notification, as shown in FIG. 28. For example, the user mayselect to redeem the deal using an electronic voucher, and the userinterface may provide details and guidance on how to redeem through theprocess, as shown in FIGS. 23-25.

Example Datasets of the Present Invention

Various embodiments of the present invention not only providearchitecture schema for dataset linking, but also provide compatibilitysupport for integrating various features of the present invention tonetwork databases. In some embodiments, new dataset properties may beadded to network datasets to accommodate dataset linkingfunctionalities.

1. Dataset Properties for Redemption Algorithms

For example, in some embodiments, each unit in the inventory module mayhave one or more values indicating various requirements, statuses, andfeatures for redemption. To accommodate redemption through linked creditcard, the following properties may be added to the redemptionPolicyalgorithm (which sets out system policy for redeeming a promotion) andthe internalWorkflow Contents algorithm (which sets out work flows oncea promotion is redeemed):

TABLE 1 New Data Properties Related to Redemption Algorithms No PropertyType Description 1. redemptionPolicy ISO 8601 Length of time betweenfirst swipe and  .cardLinkedActions duration string automatedredemption.  .redemptionFulfillmentPeriod 2. internalWorkflowContentsHash of locale If present, overrides the default unit-level  .<locale>(string pairs) redemption instructions when a physical .cardLinkedRedemptionlnstructions instrument is linked. The text islocalized.

As shown in Table 1, Dataset Property No. 1 indicates the length of timebetween the first swipe of linked credit card, and when the deal will bedeemed as redeemed automatically. In some embodiment, the system maystore a “default” parameter, for example, 24 hours as described above inconnection with block 515 of FIG. 5. Dataset Property No. 2 indicateswhether the redemption instructions need to be overridden. For example,once a credit card is linked to the promotion (for example, block 616 ofFIG. 6), the system may override the default redemption work flow sothat a credit card can be used to redeem the promotion.

In some embodiments, programming codes may be used to implement theseadditional dataset properties. For example, the following programmingcodes set the redemption window of a linked promotion to close one dayafter the first swipe:

inventoryProduct: {  claim: {   claimableForFree: false,  requiresBillingRecord: true  },  internalWorkflowContents: {   en_US:{     cardLinkedRedemptionInstructions: “First, swipe your card...”   } },  redemptionPolicy: {   cardLinkedActions: {   redemptionFulfillmentPeriod: “1D”,   },   methods: [″default″,″link″]  } }

2. Dataset Properties for Linking Promotions

In some embodiments, when a dataset is updated, additional datasetproperties or fields may be included to reflect changes of state. Forexample, the following dataset properties or fields may be added to eachunit (e.g. unit#update):

TABLE 2 New Dataset Properties Related to Each Unit No. Property TypeDescription 1 redemptionPolicy String adds “link” method to  .methodsredemptionPolicy.methods in unit#fetch, which indicates whether a unitis likable. In some embodiments, the default is not linkable. 2redemptionPolicy String adds redemptionFulfillmentPeriod to .cardLinkedActions (ISO 8601 product  .redemptionFulfillmentPeriodDuration) 3 internalWorkflowContents Text Custom product-level alternate .<locale> redemption instructions for the linked.cardLinkedRedemptionInstructions state

As shown in Table 2, Dataset Property No. 1 indicates whether a deal islinked, as described in connection with step 610 of FIG. 6. DatasetProperty No. 2 indicates the redemption fulfillment period of thepromotion, and Dataset Property No. 3 indicates the alternate redemptioninstructions (e.g. voucher or linked credit card) for the promotion.

3. Dataset Properties for Database Query

To accommodate dataset linking, in some embodiments, additional datasetproperties or fields may be added in a dataset response to networkdatabase query. For example, Table 3 below illustrates variousproperties that may be added:

TABLE 3 New Dataset Properties in Response to Query No. Property TypeDescription 1. redemptionDetails ISO Timestamp of first swipe. .cardLink Timestamp  .firstSwipeAt 2. redemptionDetails String‘swiped,’ ‘linked,’ ‘linkable,’  .cardLink ‘not_linkable.’  .statusswiped: cannot be unlinked, is partially redeemed linked: linked, noswipe transactions linkable: product and unit support linking butcurrently in voucher mode not_linkable: unit doesn't allow switching tolinked (due to user action). 3. details Object Describes an estimatedremaining  .estimatedRemainingBalance balance on the unit to redeem.Might be used by other products beyond buy and link. 4. details AmountRemaining balance for users.  .estimatedRemainingBalance object  .value5. details String Source of the remaining Balance .estimatedRemainingBalance Enum of [“buy-and-link”]  .source 6.redemptionDetails UUID Identification of claim  .cardLink .linkedClaimId

As shown in Table 3, some embodiments of the present invention may useDataset Property No. 1 to store a time stamp of the first swipe of alinked instrument, as described in connection with block 511 of FIG. 5.Dataset Property No. 2 may indicate the status of the unit, such aswhether the unit is linkable, whether it has been linked, and whether ithas been redeemed. When a unit has been linked, Dataset Property Nos. 3,4, and 5 may indicate the description of estimated remaining balance ofthe unit, the actual remaining amount and the source of the remainingbalance, respectively. Dataset Property No. 6 may further indicate theidentification of the card link claim.

In some embodiments, programming codes may be used to implement theseadditional dataset response properties. For example, the followingprogramming codes indicate that the linked card was first swiped on themidnight of Jan. 1, 2017, and the estimated remaining promotional valueof a partially redeemed promotion is $2.00.

units: [  {   localizedContents: {    en: {     locale: ‘en’,    redemptionInstructions: ″1. Visit the merchant...″    }   },  details: {    estimatedRemainingBalance: {     source: ″buy-and-link″,    value: {      amount: 200,      currencyCode: ″USD″,      formattedAmount: “$2.00”     }   },   redemptionDetails: {   cardLink: {     firstSwipeAt: ″2017-01-01T00:00:00Z″,     status:″swiped″.     linkedClaimId: ″11111111-1111-1111-1111-121212121212″    }  }  } ]

4. Dataset Properties for Connecting Different Modules

In some embodiments of the present invention, to further support datasetlinking, various dataset properties or fields may be used in variousmodules of the network database system. For example, one or more of thefollowing dataset properties or fields may be added to endpoints ofunit#update such that various modules (for example the inventory moduleand the linking module) of the system may communicate various featuresrelated to the dataset linking among each other:

TABLE 4 New Dataset Properties Related to unit#update No. Property TypeDescription 1 redemptionDetails UUID Unit should return “linked” statusfor  .cardLink cardLinkedActions and claim id if  .linkedClaimIdcardLinkedActions is non-null. 2 redemptionDetails String ENUM of[‘swiped’, ‘linked’, ‘linkable’,  .cardLink ‘not_linkable’]  .status 3redemptionDetails.cardLink.firstSwipe String or Date, time of firstrecorded swipe by the Datetime users. 4 details Object Update amount for.estimatedRemainingBalance estimatedRemainingBalance ({amount,  .valuecurrencyCode}) 5 details ENUM Update the source for.estimatedRemainingBalance estimatedRemainingBalance  .source

In various embodiments of the present invention, additional datasetproperties may be used. As shown in Table 4, Dataset Property No. 1 mayindicate whether the unit is linked and the associated claim ID. DatasetProperty No. 2 may be an enumerated type value indicating the status ofthe data linking (e.g. whether the card has been swiped, whether thedeal is linkable, etc.). Dataset Property Nos. 3, 4, and 5 may indicatethe date and time of the first swipe, the remaining balance, and thesource, respectively.

In some embodiments of the present invention, other additional changesmay be implemented to accommodate dataset linking. For example, billingmodules may be updated to reflect whether a user has set up datasetlinking. The billing modules may receive various parameters, such aswhether a unit is linkable. The billing modules may also determinewhether a particular redemption is eligible for cash back, and mayprovide an option for the user to claim cash back rewards. Further, thebilling modules may accommodate a request for refund while maintain thedataset linking.

Additional Implementation Details

Although an example processing system has been described in FIG. 2,implementations of the subject matter and the functional operationsdescribed herein can be implemented in other types of digital electroniccircuitry, or in computer software, firmware, or hardware, including thestructures disclosed in this specification and their structuralequivalents, or in combinations of one or more of them.

Embodiments of the subject matter and the operations described hereincan be implemented in digital electronic circuitry, or in computersoftware, firmware, or hardware, including the structures disclosed inthis specification and their structural equivalents, or in combinationsof one or more of them. Embodiments of the subject matter describedherein can be implemented as one or more computer programs, i.e., one ormore modules of computer program instructions, encoded on computerstorage medium for execution by, or to control the operation of,information/data processing apparatus. Alternatively, or in addition,the program instructions can be encoded on an artificially-generatedpropagated signal, e.g., a machine-generated electrical, optical, orelectromagnetic signal, which is generated to encode information/datafor transmission to suitable receiver apparatus for execution by aninformation/data processing apparatus. A computer storage medium can be,or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. Moreover,while a computer storage medium is not a propagated signal, a computerstorage medium can be a source or destination of computer programinstructions encoded in an artificially-generated propagated signal. Thecomputer storage medium can also be, or be included in, one or moreseparate physical components or media (e.g., multiple CDs, disks, orother storage devices).

The operations described herein can be implemented as operationsperformed by an information/data processing apparatus oninformation/data stored on one or more computer-readable storage devicesor received from other sources.

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more of them.The apparatus and execution environment can realize various differentcomputing model infrastructures, such as web services, distributedcomputing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor information/data (e.g., one or more scripts stored in a markuplanguage document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub-programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described herein can be performed by oneor more programmable processors executing one or more computer programsto perform actions by operating on input information/data and generatingoutput. Processors suitable for the execution of a computer programinclude, by way of example, both general and special purposemicroprocessors, and any one or more processors of any kind of digitalcomputer. Generally, a processor will receive instructions andinformation/data from a read-only memory, a random access memory, orboth. The essential elements of a computer are a processor forperforming actions in accordance with instructions and one or morememory devices for storing instructions and data. Generally, a computerwill also include, or be operatively coupled to receive information/datafrom or transfer information/data to, or both, one or more mass storagedevices for storing data, e.g., magnetic, magneto-optical disks, oroptical disks. However, a computer need not have such devices. Devicessuitable for storing computer program instructions and information/datainclude all forms of non-volatile memory, media and memory devices,including by way of example semiconductor memory devices, e.g., EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROMdisks. The processor and the memory can be supplemented by, orincorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subjectmatter described herein can be implemented on a computer having adisplay device, e.g., a CRT (cathode ray tube) or LCD (liquid crystaldisplay) monitor, for displaying information/data to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Embodiments of the subject matter described herein can be implemented ina computing system that includes a back-end component, e.g., as aninformation/data server, or that includes a middleware component, e.g.,an application server, or that includes a front-end component, e.g., aclient computer having a graphical user interface or a web browserthrough which a user can interact with an implementation of the subjectmatter described herein, or any combination of one or more suchback-end, middleware, or front-end components. The components of thesystem can be interconnected by any form or medium of digitalinformation/data communication, e.g., a communication network. Examplesof communication networks include a local area network (“LAN”) and awide area network (“WAN”), an inter-network (e.g., the Internet), andpeer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someembodiments, a server transmits information/data (e.g., an HTML page) toa client device (e.g., for purposes of displaying information/data toand receiving user input from a user interacting with the clientdevice). Information/data generated at the client device (e.g., a resultof the user interaction) can be received from the client device at theserver.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as description offeatures specific to particular embodiments of particular inventions.Certain features that are described herein in the context of separateembodiments can also be implemented in combination in a singleembodiment. Conversely, various features that are described in thecontext of a single embodiment can also be implemented in multipleembodiments separately or in any suitable sub-combination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asub-combination or variation of a sub-combination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults, unless described otherwise. In certain circumstances,multitasking and parallel processing may be advantageous. Moreover, theseparation of various system components in the embodiments describedabove should not be understood as requiring such separation in allembodiments, and it should be understood that the described programcomponents and systems can generally be integrated together in a singlesoftware product or packaged into multiple software products.

Thus, particular embodiments of the subject matter have been described.Other embodiments are within the scope of the following claims. In somecases, the actions recited in the claims can be performed in a differentorder and still achieve desirable results. In addition, the processesdepicted in the accompanying figures do not necessarily require theparticular order shown, or sequential order, to achieve desirableresults, unless described otherwise. In certain implementations,multitasking and parallel processing may be advantageous.

CONCLUSION

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing description and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation, unlessdescribed otherwise.

1-20. (canceled)
 21. An apparatus comprising at least one processor andat least one non-transitory memory including computer program code, theat least one non-transitory memory and the computer program codeconfigured to, with the at least one processor, cause the apparatus toat least: in response to receiving a dataset generation request from aclient device associated with a client account, generate a datasetassociated with the client account in a network database; in response toreceiving a data linking query associated with the dataset from theclient device, determine whether the client account is associated withat least one instrument identifier; in response to determining that theclient account is not associated with the at least one instrumentidentifier, transmit an instrument identifier request to the clientdevice; receive an instrument identifier associated with a physicalinstrument from the client device; and generate a dataset pointer thatestablishes a data connection between the dataset and the instrumentidentifier.
 22. The apparatus of claim 21, wherein the at least onenon-transitory memory and the computer program code are configured to,with the at least one processor, cause the apparatus to: in response toreceiving the data linking query associated with the dataset from theclient device, determine whether the dataset is linkable.
 23. Theapparatus of claim 22, wherein the at least one non-transitory memoryand the computer program code are configured to, with the at least oneprocessor, cause the apparatus to: in response to determining that thedataset is not linkable, output, to the client device, an electronicnotification indicating that the data linking query is not completed.24. The apparatus of claim 21, wherein the dataset generation request isassociated with a completed transaction indication, wherein the datasetindicates a restricted value from the completed transaction indication.25. The apparatus of claim 21, wherein the at least one non-transitorymemory and the computer program code are configured to, with the atleast one processor, cause the apparatus to: in response to receiving atransmission indication between the physical instrument and a terminaldevice, trigger updating the dataset in the network database based onthe transmission indication.
 26. The apparatus of claim 25, wherein thedataset indicates a restricted value, wherein the transmissionindication indicates the instrument identifier and a partial amountassociated with the dataset.
 27. The apparatus of claim 26, wherein theat least one non-transitory memory and the computer program code areconfigured to, with the at least one processor, cause the apparatus to:determine whether the partial amount satisfies the restricted value; andin response to determining that the partial amount does not satisfy therestricted value, decrease the restricted value based on the partialamount.
 28. A computer program product comprising at least onenon-transitory computer readable storage medium having computerexecutable code portions stored therein, the computer executable codeportions comprising program code instructions configured to: in responseto receiving a dataset generation request from a client deviceassociated with a client account, generate a dataset associated with theclient account in a network database; in response to receiving a datalinking query associated with the dataset from the client device,determine whether the client account is associated with at least oneinstrument identifier; in response to determining that the clientaccount is not associated with the at least one instrument identifier,transmit an instrument identifier request to the client device; receivean instrument identifier associated with a physical instrument from theclient device; and generate a dataset pointer that establishes a dataconnection between the dataset and the instrument identifier.
 29. Thecomputer program product of claim 28, wherein the computer executablecode portions comprise the program code instructions configured to: inresponse to receiving the data linking query associated with the datasetfrom the client device, determine whether the dataset is linkable. 30.The computer program product of claim 29, wherein the computerexecutable code portions comprise the program code instructionsconfigured to: in response to determining that the dataset is notlinkable, output, to the client device, an electronic notificationindicating that the data linking query is not completed.
 31. Thecomputer program product of claim 28, wherein the dataset generationrequest is associated with a completed transaction indication, whereinthe dataset indicates a restricted value from the completed transactionindication.
 32. The computer program product of claim 28, wherein thecomputer executable code portions comprise the program code instructionsconfigured to: in response to receiving a transmission indicationbetween the physical instrument and a terminal device, trigger updatingthe dataset in the network database based on the transmissionindication.
 33. The computer program product of claim 32, wherein thedataset indicates a restricted value, wherein the transmissionindication indicates the instrument identifier and a partial amountassociated with the dataset.
 34. The computer program product of claim33, wherein the computer executable code portions comprise the programcode instructions configured to: determine whether the partial amountsatisfies the restricted value; and in response to determining that thepartial amount does not satisfy the restricted value, decrease therestricted value based on the partial amount.
 35. A computer-implementedmethod comprising: in response to receiving a dataset generation requestfrom a client device associated with a client account, generating adataset associated with the client account in a network database; inresponse to receiving a data linking query associated with the datasetfrom the client device, determining whether the client account isassociated with at least one instrument identifier; in response todetermining that the client account is not associated with the at leastone instrument identifier, transmitting an instrument identifier requestto the client device; receiving an instrument identifier associated witha physical instrument from the client device; and generating a datasetpointer that establishes a data connection between the dataset and theinstrument identifier.
 36. The computer-implemented method of claim 35,further comprising: in response to receiving the data linking queryassociated with the dataset from the client device, determining whetherthe dataset is linkable.
 37. The computer-implemented method of claim36, further comprising: in response to determining that the dataset isnot linkable, outputting, to the client device, an electronicnotification indicating that the data linking query is not completed.38. The computer-implemented method of claim 35, wherein the datasetgeneration request is associated with a completed transactionindication, wherein the dataset indicates a restricted value from thecompleted transaction indication.
 39. The computer-implemented method ofclaim 35, further comprising: in response to receiving a transmissionindication between the physical instrument and a terminal device,triggering updating the dataset in the network database based on thetransmission indication.
 40. The computer-implemented method of claim39, wherein the dataset indicates a restricted value, wherein thetransmission indication indicates the instrument identifier and apartial amount associated with the dataset.